python高级教程第三版修订版下载 python3高级编程技术进阶

您所在的位置:网站首页 python3高级编程pdf第三版 下载 python高级教程第三版修订版下载 python3高级编程技术进阶

python高级教程第三版修订版下载 python3高级编程技术进阶

2023-12-06 14:35| 来源: 网络整理| 查看: 265

我们从字面意思理解高级特性,就是高级的特有的性质。

(不是废话吗!)

高级特性,有切片、迭代、列表生成器、生成器、迭代器

1、切片

切片是针对于 list 、tuple、str 进行操作,“切” 出来的是对应的类型,比如 list 的切片结果还是一个 list 。

[ list ] [ x : y ] ( tuple ) [ x : y ] ' str ' [ x : y ]

# x 代表的是起始位置,y 代表的是终止位置,但是不包含y本身的那个元素

# 实例1 L1=[1,2,3,4,5,6] #list的切片 L2=(1,2,3,4,5,6) #tuple的切片 L3="123456" #字符串的切片 print('list的切片:') print(L1[0:5]) print('tuple的切片:') print(L2[0:5]) print('str的切片:') print(L3[0:5]) >>> list的切片: [1, 2, 3, 4, 5] tuple的切片: (1, 2, 3, 4, 5) str的切片: 12345 # 如果[0:5]切片的起始位置为0,那么就可以把0省略,表达成[:5] print(L1[:5]) >>> [1, 2, 3, 4, 5] # 实例2,取特定位置的切片 L4=('a','b','c','d','e','f') print(type(L4[1:5]),L4[1:5]) >>> ('b', 'c', 'd', 'e') # 取L4 tuple的第一位到第五位的元素,但是不包含第五位的元素 # 实例2,这个实例很好的解释了特定区间的元素 a1=[i for i in range(21)] print(a1[:]) print(a1[::2]) print(a1[1::2]) print(a1[:11:2]) print(a1[1:11:2]) >>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20] [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] [0, 2, 4, 6, 8, 10] [1, 3, 5, 7, 9] # [ : ] 中,没有给起始、和终止的位置,所以,python中默认取出所有的元素,也就相当于复制。 # [ : : 2] 第二个冒号代表的是隔2取值。

 

2、迭代

如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。(抄来的,廖雪峰的博客)

# 实例1,list 的迭代 S1=[1,2,3,4,5,6] for i in S1: print(i,end=" ") >>> 1 2 3 4 5 6 # 实例2,tuple的迭代 S2=('a','b','c','d','e','f') for j in S2: print(j,end=' ') >>> a b c d e f # 实例3,str的迭代 S3='Hello Python' for k in S3: print(k,end=' ') >>> H e l l o P y t h o n # 实例4,dict 的迭代 S4={'a':1,'b':2,'c':3,'d':4,'e':5} for m in S4: print(m ,end=' ') >>> a b c d e # 实例5,dict 键和值的迭代 S5={'a':1,'b':2,'c':3,'d':4,'e':5} for a,b in S5.items(): print(a,"=",b,end=" ") >>> a = 1 b = 2 c = 3 d = 4 e = 5 # 如果要迭代出dict的键值,需要在变量后调用items()函数。

 

3、列表生成器

如果我们要生成一个列表,比如[0,1,2,3,4,5,6,7,8,9,10],可以使用list(range(11))

# 实例1 print(list(range(11))) >>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

但是我们想要生成1x1,2x2,3x3,4x4......的一个列表,我们同样可以利用for 循环实现:

# 实例2 a1=[] for i in range(11): a1.append(i*i) print(a1) >>> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

你有没有感到繁琐?python为大家提供了一个列表生成器,直接一句话就可以生成列表,即便很复杂的列表也是可以的。

[i for i in range(11)] >>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 这个一个生成0-10列表的表达式。 # 首先 for i in range(11),生成0-10的数字 # 然后 赋值给 i #接着加入到列表中 [ ]# 实例1,生成一个1x1,2x2,3x3,....的列表 a=[i*i for i in range(11)] print(type(a),a) >>> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100] # 输出的类型是 list ,结果正确 # 实例2,输出0,10所有的偶数 print([j for j in range(11) if j % 2==0]) >>> [0, 2, 4, 6, 8, 10] # range 语句的右边是对range函数进行判断。符合判断语句的,输出,不符合的不输出。 # 实例3,输出0,10 所有的偶数,这些偶数中有 4 ,则输出4*4 的结果 print([j*j if j==4 else j for j in range(11) if j % 2==0]) >>> [0, 2, 16, 6, 8, 10] # for 语句的左边的 j*j if j==4 else j 代表的是,判断是否符合条件,如果符合,则执行判断语句的左边 j * j 。不符合,执行else 的右边 j 。

# 所以使用python的列表生成器,既能达到想要的结果,又方便快捷。

# 练习题,把列表L = ['Hello', 'World', 18, 'Apple', None] 中的字符串改为小写。 L = ['Hello', 'World', 18, 'Apple', None] print([i.lower() if isinstance(i,str) else i for i in L]) >>> ['hello', 'world', 18, 'apple', None] # Python lower() 方法转换字符串中所有大写字符为小写。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3